//package com.inspur.edp.udt.generator.api.typeprocessers.datareaders;
//
//import com.inspur.edp.caf.generator.baseInfo.TypeInfo;
//import com.inspur.edp.caf.generator.item.ClassGenerator;
//import com.inspur.edp.caf.generator.item.ClassGeneratorContext;
//import com.inspur.edp.caf.generator.method.ClassMethodGenerator;
//import com.inspur.edp.cef.api.repository.INestedDataReader;
//import com.inspur.edp.cef.gencommon.MediateType;
//import com.inspur.edp.udt.generator.api.UdtApiGenCtx;
//import org.eclipse.jdt.core.dom.Modifier;
//
//import java.util.ArrayList;
//
//public class UdtDataReaderGenerator extends ClassGenerator
//{
//	private UdtApiGenCtx apiGenCtx;
//	private String className;
//	private UdtDataReaderReadDataMethodGenerator readDataMethodGenerator;
//	private String labelId;
//	public UdtDataReaderGenerator(String className, DataReadersGenCtx genCtx, UdtApiGenCtx apiGenCtx, String labelId, UdtDataReaderReadDataMethodGenerator readDataMethodGenerator)
//	{
//		super(apiGenCtx.getCompilationUnitInfo());
//		this.className = className;
//		this.apiGenCtx = apiGenCtx;
//		this.readDataMethodGenerator = readDataMethodGenerator;
//		this.labelId = labelId;
//
//	}
//
//
//	@Override
//	protected String getName()
//	{
//		return className;
//	}
//
//	@Override
//	protected ArrayList<TypeInfo> addParentInterfaces() {
//		ArrayList<TypeInfo> list = super.addParentInterfaces();
//		if(list ==null)
//			list =new ArrayList<TypeInfo>();
//		list.add(new TypeInfo(INestedDataReader.class));
//		return list;
//	}
//
//	@Override
//	protected ClassGeneratorContext createClassInfoContext()
//	{
//		return new ClassGeneratorContext();
//	}
//
//	@Override
//	protected java.util.ArrayList<ClassMethodGenerator> createMethodGenerators()
//	{
//		java.util.ArrayList<ClassMethodGenerator> list = super.createMethodGenerators();
//		if (list == null)
//		{
//			list = new java.util.ArrayList<ClassMethodGenerator>();
//		}
//		list.add(readDataMethodGenerator);
//		return list;
//	}
//
//	@Override
//	protected ArrayList<Modifier.ModifierKeyword> getAccessModifier() {
//		ArrayList<Modifier.ModifierKeyword> list =new ArrayList<Modifier.ModifierKeyword>();
//		list.add(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
//		return list;
//	}
//
//	@Override
//	protected void afterGenerate()
//	{
//		super.afterGenerate();
//		apiGenCtx.getDataReaderMediateTypes().put(labelId,new MediateType(getNameSpace(), getName()));
//	}
//
//	protected String getNameSpace()
//	{
//		return apiGenCtx.getUdtGenContext().getUdt().getApiNamespace().getDefaultNamespace();
//	}
//}